/**
 * ILoginService.java
 * Created at 2017-1-4
 * Created by TangSanlin
 * Copyright (C) 2016 BROADTEXT SOFTWARE, All rights reserved.
 */
package com.broadtext.rms.system.service;

import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.broadtext.common.exp.DaoException;
import com.broadtext.common.exp.ServiceException;
import com.broadtext.rms.system.model.SysResource;
import com.broadtext.rms.system.model.SysRole;
import com.broadtext.rms.system.model.SysUser;
import com.broadtext.rms.system.model.VSysUsers;

/**
 * 
 * <p>
 * ClassName: ILoginService		
 * </p>
 * <p>
 * Description: 用户登录服务接口
 * </p>
 * <p>
 * Author: Administrator
 * </p>
 * <p>
 * Date: 2017-1-4
 * </p>
 */
public interface ILoginService {
    
    /**
     * 
     * <p>Description: 根据用户名查找用户</p>
     * @param loginName 用户名
     * @return 用户信息
     */
    public SysUser findUser(String loginName);

    /**
     * 
     * <p>Description: 根据用户名查找用户</p>
     * @param loginName 用户名
     * @return 用户信息
     */
    public VSysUsers findVuser(String loginName);

    /**
     * 
     * <p>Description: 根据用户id查找用户角色信息</p>
     * @param userId 用户id
     * @return 角色信息
     */
    public List<SysRole> selectRoleByUserId(String userId);
    
    /**
     * <p>
     * Description: 根据用户名获取用户资源列表
     * </p>
     * 
     * @param loginName 用户登录信息
     * @return 资源列表
     * @throws DaoException 
     */
    public SysResource[] getHavResByLoginName(String loginName) throws DaoException;
    
    /**
     * <p>
     * Description: 根据用户名获取用户资源列表
     * </p>
     * 
     * @param userId 用id
     * @return 资源列表
     * @throws DaoException 
     */
    public JSONArray getUserRes(String userId) throws DaoException;

    /**
     * 
     * <p>Description: 修改用户密码</p>
     * @param user 用户实体
     * @return 
     * @throws ServiceException 异常
     */
    public boolean modifyPass(SysUser user) throws ServiceException;
    
    /**
     * 
     * <p>Description: 校验账户使用期限</p>
     * @param user 用户实体
     * @return 
     * @throws ServiceException 异常
     */
    public boolean getAccountValidity(String loginName) throws ServiceException;

    public Boolean showMsgReceiveManage(String id) throws DaoException;
    
}
